/**
 * SEZIONE PUNTI VENDITA
 */
function aggiornaPdv(id) {
	var titolo = '';
	var txtmessaggio = '';
	$('#content').load(
			'templates/pdv.html',
			function() {
				if (province.length > 0) {
					for ( var i = 0; i < province.length; i++) {
						$('#provincia').append(
								'<option value="' + province[i].sigla + '">'
										+ province[i].provincia + '</option>');
					}
				}
				if (nazioni.length > 0) {
					for ( var i = 0; i < nazioni.length; i++) {
						$('#nazione').append(
								'<option value="' + nazioni[i].id + '">'
										+ nazioni[i].valore + '</option>');
					}
				}
				if (id) {
					$('#cont-navbar').html('PUNTI VENDITA > Modifica');
					titolo = 'Modifica Punto vendita';
					txtmessaggio = 'Punto vendita aggiornato con successo!';
					var strId = '&id=' + id;
					$.ajax({
						type : 'POST',
						url : 'pdv.php',
						data : 'op=getRecord&id=' + id,
						dataType : 'json',
						success : function(msg) {
							aggiornaSessione(msg);
							$('#nome').val(msg.row[0].nome);
							$('#codice').val(msg.row[0].codice);
							$('#indirizzo').val(msg.row[0].indirizzo);
							$('#citta').val(msg.row[0].citta);
							$('#provincia').val(msg.row[0].provincia);
							$('#nazione').val(msg.row[0].nazione);
						}
					});
				} else {
					$('#cont-navbar').html('PUNTI VENDITA > Aggiungi Nuovo');
					titolo = 'Nuovo Punto vendita';
					txtmessaggio = 'Punto vendita salvato con successo!';
					var strId = '&id=0';
				}
				$('#titolo').html(titolo);
				$('#form-pdv').validate(
						{
							errorClass : 'form-error',
							rules : {
								nome : 'required',
								mail : {
									required : true,
									email : true
								}
							},
							submitHandler : function(form) {
								var strData = 'op=salva' + '&nome='
										+ $('#nome').val() + '&codice='
										+ $('#codice').val() + '&indirizzo='
										+ $('#indirizzo').val() + '&citta='
										+ $('#citta').val() + '&provincia='
										+ $('#provincia').val() + '&nazione='
										+ $('#nazione').val() + strId;
								$.ajax({
									type : 'POST',
									url : 'pdv.php',
									data : strData,
									dataType : 'json',
									success : function(msg) {
										aggiornaSessione(msg);
										if (msg.error == "") {
											messaggio(titolo, txtmessaggio);
											caricaPdv();
										} else {
											alert(msg.error);
										}
									}
								});
							}
						});
			});
}

function eliminaPdv(id) {
	if (confirm('Sei sicuro di voler eliminare il punto vendita selezionato? Procedere?')) {
		$.ajax({
			type : 'POST',
			url : 'pdv.php',
			data : 'op=elimina&id=' + id,
			dataType : 'json',
			success : function(msg) {
				aggiornaSessione(msg);
				if (msg.error == "") {
					$('#elenco-utenti').click();
				} else {
					alert(msg.error);
				}
			}
		});
	} else
		return false;
}

function eliminaPdvCerca(id) {
	if (confirm('Sei sicuro di voler eliminare il punto vendita selezionato? Procedere?')) {
		$.ajax({
			type : 'POST',
			url : 'pdv.php',
			data : 'op=elimina&id=' + id,
			dataType : 'json',
			success : function(msg) {
				aggiornaSessione(msg);
				if (msg.error == "") {
					goToCercaClienti("", "");
				} else {
					alert(msg.error);
				}
			}
		});
	} else
		return false;
}

function cercaElencoPdv() {
	$('#content')
			.load(
					'templates/cerca-pdv.html',
					function() {
						if (province.length > 0) {
							for ( var i = 0; i < province.length; i++) {
								$('#provincia').append(
										'<option value="' + province[i].sigla
												+ '">' + province[i].provincia
												+ '</option>');
							}
						}
						if (nazioni.length > 0) {
							for ( var i = 0; i < nazioni.length; i++) {
								$('#nazione').append(
										'<option value="' + nazioni[i].id
												+ '">' + nazioni[i].valore
												+ '</option>');
							}
						}
						$('#cont-navbar').html('PUNTI VENDITA > Cerca');
						$('#titolo').html("Cerca Punto vendita");
						$('#form-cerca-elenco-pdv')
								.validate(
										{
											errorClass : 'form-error',
											submitHandler : function(form) {
												if ($('#codice').val() != ""
														|| $('#nome').val() != ""
														|| $('#provincia')
																.val() != ""
														|| $('#nazione').val() != "") {
													var strData = 'op=cercaElenco&referente='
															+ $('#referente')
																	.val()
															+ '&nome='
															+ $('#nome').val()
															+ '&provincia='
															+ $('#provincia')
																	.val()
															+ '&nazione='
															+ $('#nazione')
																	.val()
															+ '&min='
															+ $(
																	'#min-cerca-elenco-pdv')
																	.html()
															+ '&max='
															+ $(
																	'#max-cerca-elenco-pdv')
																	.html();
													$
															.ajax({
																type : 'POST',
																url : 'pdv.php',
																data : strData,
																dataType : 'json',
																success : function(
																		msg) {
																	aggiornaSessione(msg);
																	if (msg.totalCount > 0) {
																		var params = {
																			cols : [
																					{
																						name : 'Punto vendita',
																						index : 'nome',
																						width : '240px'
																					},
																					{
																						name : 'Citta',
																						index : 'citta',
																						width : '125px'
																					},
																					{
																						name : 'Provincia',
																						index : 'provincia_txt',
																						width : '125px',
																						align : 'center'
																					},
																					{
																						name : '&nbsp;',
																						index : '',
																						width : '125px',
																						align : 'center'
																					} ],
																			min : $(
																					'#min-cerca-elenco-pdv')
																					.html(),
																			max : $(
																					'#max-cerca-elenco-pdv')
																					.html(),
																			icons : [
																					{
																						classIcon : 'ico-modifica',
																						action : 'aggiornaPdv',
																						data : 'id',
																						tip : 'MODIFICA'
																					},
																					{
																						classIcon : 'ico-elimina',
																						action : 'eliminaPdvCerca',
																						data : 'id',
																						tip : 'ELIMINA'
																					},
																					{
																						classIcon : 'ico-attiva',
																						action : 'disattivaPdvCerca',
																						data : 'id',
																						tip : 'DISATTIVA'
																					},
																					{
																						classIcon : 'ico-disattiva',
																						action : 'attivaPdvCerca',
																						data : 'id',
																						tip : 'ATTIVA'
																					},
																					{
																						classIcon : 'ico-archivia',
																						action : 'archiviaPdvCerca',
																						data : 'id',
																						tip : 'METTI IN ARCHIVIO'
																					},
																					{
																						classIcon : 'ico-ripristina',
																						action : 'ripristinaPdvCerca',
																						data : 'id',
																						tip : 'RIPRISTINA'
																					} ]
																		};
																		var html = '<div class="elenco" style="">'
																				+ '<div class="header-elenco">Cerca Punto vendita</div>';
																		if (params.cols.length > 0) {
																			html += '<div class="riga">';
																			for ( var i = 0; i < params.cols.length; i++) {
																				if (params.cols[i].width != '')
																					html += '<div class="cell-header" style="width:'
																							+ params.cols[i].width
																							+ '">'
																							+ params.cols[i].name
																							+ '</div>';
																			}
																			html += '</div>';
																		}
																		if (msg.rows) {
																			var totalCount = msg.totalCount;
																			if (msg.rows.length > 0) {
																				for ( var k = 0; k < msg.rows.length; k++) {
																					var id = msg.rows[k].idutente;
																					var bcolor = '';
																					k % 2 == 0 ? bcolor = '#F5F5F5'
																							: bcolor = '#ffffff';
																					html += '<div class="riga">';
																					for ( var i = 0; i < params.cols.length; i++) {
																						var campo = params.cols[i].index;
																						params.cols[i].align ? align = params.cols[i].align
																								: align = 'left';
																						if (i < params.cols.length - 1)
																							html += '<div class="cell" style="width:'
																									+ params.cols[i].width
																									+ ';background-color:'
																									+ bcolor
																									+ ';text-align:'
																									+ align
																									+ '">'
																									+ msg.rows[k][campo]
																									+ '</div>';
																						else {

																							if (params.icons.length > 0) {
																								html += '<div class="cell" style="width:'
																										+ params.cols[i].width
																										+ ';background-color:'
																										+ bcolor
																										+ ';text-align:'
																										+ align
																										+ '">';
																								for ( var j = 0; j < params.icons.length; j++) {
																									switch (params.icons[j].classIcon) {
																									case 'ico-attiva':
																										msg.rows[k].attivo
																												|| msg.rows[k].aperta ? html += '<div class="ico-attiva" title="'
																												+ params.icons[j].tip
																												+ '" onClick="'
																												+ params.icons[j].action
																												+ '('
																												+ msg.rows[k][params.icons[j].data]
																												+ ');"></div>'
																												: html += '<div class="ico-disattiva" title="'
																														+ params.icons[j + 1].tip
																														+ '" onClick="'
																														+ params.icons[j + 1].action
																														+ '('
																														+ msg.rows[k][params.icons[j + 1].data]
																														+ ');"></div>';
																										break;

																									case 'ico-disattiva':
																										break;

																									case 'ico-archivia':
																										msg.rows[k].archivio ? html += '<div class="ico-ripristina" title="'
																												+ params.icons[j + 1].tip
																												+ '" onClick="'
																												+ params.icons[j + 1].action
																												+ '('
																												+ msg.rows[k][params.icons[j + 1].data]
																												+ ');"></div>'
																												: html += '<div class="ico-archivia" title="'
																														+ params.icons[j].tip
																														+ '" onClick="'
																														+ params.icons[j].action
																														+ '('
																														+ msg.rows[k][params.icons[j].data]
																														+ ');"></div>';
																										break;

																									case 'ico-ripristina':
																										break;

																									default:
																										html += '<div class="'
																												+ params.icons[j].classIcon
																												+ '" title="'
																												+ params.icons[j].tip
																												+ '" onClick="'
																												+ params.icons[j].action
																												+ '('
																												+ msg.rows[k][params.icons[j].data]
																												+ ');"></div>';
																										break;
																									}
																								}
																								html += '</div>';
																							}
																						}
																					}
																					html += '</div>';
																				}
																			}
																		}
																		html += '</div>';
																		if (totalCount > 0) { // attivo
																								// il
																								// paginatore
																			var num_pages = 1;
																			var current = 1;
																			var avanti = '';
																			var indietro = '';
																			var fine = '';
																			var inizio = '';
																			if (totalCount > params.max) {
																				num_pages = Math
																						.floor(totalCount
																								/ params.max);
																				if (totalCount > num_pages)
																					num_pages++;
																				if (params.min > 0) { // devo
																										// calcolare
																										// in
																										// che
																										// pagina
																										// siamo
																										// e
																										// impostare
																										// i
																										// parametri
																										// per
																										// < <<
																					current = (params.min / params.max) + 1;
																					inizio = '<a href="javascript:;" onClick="goToCercaClienti(0,'
																							+ parseInt(params.max)
																							+ ');"><<</a>';
																					indietro = '<a href="javascript:;" onClick="goToCercaClienti('
																							+ (parseInt(params.min) - parseInt(params.max))
																							+ ','
																							+ parseInt(params.max)
																							+ ');"><</a>';
																				}
																				if (current < num_pages) {
																					fine = '<a href="javascript:;" onClick="goToCercaClienti('
																							+ ((num_pages - 1) * parseInt(params.max))
																							+ ','
																							+ parseInt(params.max)
																							+ ');">>></a>';
																					avanti = '<a href="javascript:;" onClick="goToCercaClienti('
																							+ (parseInt(params.min) + parseInt(params.max))
																							+ ','
																							+ parseInt(params.max)
																							+ ');">></a>';
																				}
																			}
																			html += '<div class="pager">';
																			html += '<div class="pager-left">'
																					+ inizio
																					+ ' '
																					+ indietro
																					+ '</div>';
																			html += '<div class="pager-center">Pag '
																					+ current
																					+ ' di '
																					+ num_pages
																					+ '</div>';
																			html += '<div class="pager-right">'
																					+ avanti
																					+ ' '
																					+ fine
																					+ '</div>';
																			html += '</div>';
																		}
																		// LEGENDA
																		html += '<div id="helper" class="help"></div>';
																		$(
																				'#content')
																				.html(
																						html);
																	} else {
																		alert('Nessun punto vendita trovato per questa ricerca.');
																	}
																}
															});
												} else {
													alert('Devi inserire almeno un parametro per la ricerca');
												}
											}
										});
					});
}

function goToCercaClienti(p_min, p_max) {
	if (p_min == "") {
		p_min = $('#min-cerca-elenco-pdv').html();
	} else {
		$('#min-cerca-elenco-pdv').html(p_min);
	}
	if (p_max == "") {
		p_max = $('#max-cerca-elenco-pdv').html();
	} else {
		$('#max-cerca-elenco-pdv').html(p_max);
	}
	var strData = 'op=cercaElenco&mode=pager&min='
			+ $('#min-cerca-elenco-pdv').html() + '&max='
			+ $('#max-cerca-elenco-pdv').html();
	$
			.ajax({
				type : 'POST',
				url : 'pdv.php',
				data : strData,
				dataType : 'json',
				success : function(msg) {
					aggiornaSessione(msg);
					if (msg.totalCount > 0) {
						var params = {
							cols : [ {
								name : 'Punto vendita',
								index : 'nome',
								width : '240px'
							}, {
								name : 'Citta',
								index : 'citta',
								width : '125px'
							}, {
								name : 'Provincia',
								index : 'provincia_txt',
								width : '125px',
								align : 'center'
							}, {
								name : '&nbsp;',
								index : '',
								width : '125px',
								align : 'center'
							} ],
							min : p_min,
							max : p_max,
							icons : [ {
								classIcon : 'ico-modifica',
								action : 'aggiornaPdv',
								data : 'id',
								tip : 'MODIFICA'
							}, {
								classIcon : 'ico-elimina',
								action : 'eliminaPdvCerca',
								data : 'id',
								tip : 'ELIMINA'
							}, {
								classIcon : 'ico-attiva',
								action : 'disattivaPdvCerca',
								data : 'id',
								tip : 'DISATTIVA'
							}, {
								classIcon : 'ico-disattiva',
								action : 'attivaPdvCerca',
								data : 'id',
								tip : 'ATTIVA'
							}, {
								classIcon : 'ico-archivia',
								action : 'archiviaPdvCerca',
								data : 'id',
								tip : 'METTI IN ARCHIVIO'
							}, {
								classIcon : 'ico-ripristina',
								action : 'ripristinaPdvCerca',
								data : 'id',
								tip : 'RIPRISTINA'
							} ]
						};
						var html = '<div class="elenco" style="">'
								+ '<div class="header-elenco">Cerca Punto vendita</div>';
						if (params.cols.length > 0) {
							html += '<div class="riga">';
							for ( var i = 0; i < params.cols.length; i++) {
								if (params.cols[i].width != '')
									html += '<div class="cell-header" style="width:'
											+ params.cols[i].width
											+ '">'
											+ params.cols[i].name + '</div>';
							}
							html += '</div>';
						}
						if (msg.rows) {
							var totalCount = msg.totalCount;
							if (msg.rows.length > 0) {
								for ( var k = 0; k < msg.rows.length; k++) {
									var id = msg.rows[k].idutente;
									var bcolor = '';
									k % 2 == 0 ? bcolor = '#F5F5F5'
											: bcolor = '#ffffff';
									html += '<div class="riga">';
									for ( var i = 0; i < params.cols.length; i++) {
										var campo = params.cols[i].index;
										params.cols[i].align ? align = params.cols[i].align
												: align = 'left';
										if (i < params.cols.length - 1)
											html += '<div class="cell" style="width:'
													+ params.cols[i].width
													+ ';background-color:'
													+ bcolor
													+ ';text-align:'
													+ align
													+ '">'
													+ msg.rows[k][campo]
													+ '</div>';
										else {

											if (params.icons.length > 0) {
												html += '<div class="cell" style="width:'
														+ params.cols[i].width
														+ ';background-color:'
														+ bcolor
														+ ';text-align:'
														+ align + '">';
												for ( var j = 0; j < params.icons.length; j++) {
													switch (params.icons[j].classIcon) {
													case 'ico-attiva':
														msg.rows[k].attivo
																|| msg.rows[k].aperta ? html += '<div class="ico-attiva" title="'
																+ params.icons[j].tip
																+ '" onClick="'
																+ params.icons[j].action
																+ '('
																+ msg.rows[k][params.icons[j].data]
																+ ');"></div>'
																: html += '<div class="ico-disattiva" title="'
																		+ params.icons[j + 1].tip
																		+ '" onClick="'
																		+ params.icons[j + 1].action
																		+ '('
																		+ msg.rows[k][params.icons[j + 1].data]
																		+ ');"></div>';
														break;

													case 'ico-disattiva':
														break;

													case 'ico-archivia':
														msg.rows[k].archivio ? html += '<div class="ico-ripristina" title="'
																+ params.icons[j + 1].tip
																+ '" onClick="'
																+ params.icons[j + 1].action
																+ '('
																+ msg.rows[k][params.icons[j + 1].data]
																+ ');"></div>'
																: html += '<div class="ico-archivia" title="'
																		+ params.icons[j].tip
																		+ '" onClick="'
																		+ params.icons[j].action
																		+ '('
																		+ msg.rows[k][params.icons[j].data]
																		+ ');"></div>';
														break;

													case 'ico-ripristina':
														break;

													default:
														html += '<div class="'
																+ params.icons[j].classIcon
																+ '" title="'
																+ params.icons[j].tip
																+ '" onClick="'
																+ params.icons[j].action
																+ '('
																+ msg.rows[k][params.icons[j].data]
																+ ');"></div>';
														break;
													}
												}
												html += '</div>';
											}
										}
									}
									html += '</div>';
								}
							}
						}
						html += '</div>';
						if (totalCount > 0) { // attivo il paginatore
							var num_pages = 1;
							var current = 1;
							var avanti = '';
							var indietro = '';
							var fine = '';
							var inizio = '';
							if (totalCount > params.max) {
								num_pages = Math.floor(totalCount / params.max);
								if (totalCount > num_pages)
									num_pages++;
								if (params.min > 0) { // devo calcolare in che
														// pagina siamo e
														// impostare i parametri
														// per < <<
									current = (params.min / params.max) + 1;
									inizio = '<a href="javascript:;" onClick="goToCercaClienti(0,'
											+ parseInt(params.max)
											+ ');"><<</a>';
									indietro = '<a href="javascript:;" onClick="goToCercaClienti('
											+ (parseInt(params.min) - parseInt(params.max))
											+ ','
											+ parseInt(params.max)
											+ ');"><</a>';
								}
								if (current < num_pages) {
									fine = '<a href="javascript:;" onClick="goToCercaClienti('
											+ ((num_pages - 1) * parseInt(params.max))
											+ ','
											+ parseInt(params.max)
											+ ');">>></a>';
									avanti = '<a href="javascript:;" onClick="goToCercaClienti('
											+ (parseInt(params.min) + parseInt(params.max))
											+ ','
											+ parseInt(params.max)
											+ ');">></a>';
								}
							}
							html += '<div class="pager">';
							html += '<div class="pager-left">' + inizio + ' '
									+ indietro + '</div>';
							html += '<div class="pager-center">Pag ' + current
									+ ' di ' + num_pages + '</div>';
							html += '<div class="pager-right">' + avanti + ' '
									+ fine + '</div>';
							html += '</div>';
						}
						// LEGENDA
						html += '<div id="helper" class="help"></div>';
						$('#content').html(html);
					} else {
						alert('Nessun punto vendita trovato per questa ricerca.');
					}
				}
			});
}

function importaCartePdv(id) {
	var titolo = '';
	var txtmessaggio = '';
	$('#content').load('templates/pdv-carte.html', function() {
		if (id) {
			$('#cont-navbar').html('PUNTI VENDITA > Importa Carte Clienti');
			titolo = 'Importa Carte Clienti Punto vendita ';
			txtmessaggio = 'carte aggiornato con successo!';
			var strId = '&id=' + id;
			$.ajax({
				type : 'POST',
				url : 'pdv.php',
				data : 'op=getRecord&id=' + id,
				dataType : 'json',
				success : function(msg) {
					aggiornaSessione(msg);
					titolo += msg.row[0].nome;
					$('#titolo').html(titolo);
					$('#file-csv').attr('src','upload.php?op=file_carte&id='+id);
				}
			});
		}
	});
}

function mostraMappaPdv(id) {
	var timeCall = 1000 * 300;
	$.ajax({
        type: 'POST',
        url: 'pdv.php',
        data: 'op=getCoordinate&id=' + id,
        dataType: 'json',
        timeout: timeCall,
        success: function(msg){
            // creo la mappa
        	aggiornaSessione(msg);
        	var w = $(window).width();
        	var h = $(window).height();
        	var width_maps = w - 200 - 10 - 20;
        	var height_maps = h - 100 - 40;
        	if(width_maps < MINWIDTH) width_maps = MINWIDTH;
        	if(height_maps < MINHEIGHT) height_maps = MINHEIGHT;
        	$('#canvasMap').width(width_maps);
        	$('#canvasMap').height(height_maps + 15);
        	$('#cont-maps').width(width_maps - 300 - 20);
        	$('#cont-maps').height(height_maps - 25);
            $('#canvasMap').show();
            var arrCoord = Array();
            var geocoder = new google.maps.Geocoder();
            var nome = msg.nome;
            var address = msg.indirizzo + " " + msg.citta + " " + msg.provincia;
            if (msg.totalCount > 0) {
                for (var i = 0; i < msg.totalCount; i++) { 
                    arrCoord.push({
                    		position: new google.maps.LatLng(msg.rows[i].coord_y, msg.rows[i].coord_x),
                    		indirizzo: msg.rows[i].indirizzo_normalizzato 
                    });
                }
            }
            var myOptions = {
                zoom: 14,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("cont-maps"), myOptions);
            geocoder.geocode({
                'address': address
            }, function(results, status){
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    var markerPdv = new google.maps.Marker({
                        position: results[0].geometry.location,
                        map: map,
                        title: nome+' '+address
                    });
                 // CENTRO MAPPA //
                    /*
                    	var bounds = new google.maps.LatLngBounds();
                        if(arrCoord.length > 0) {
                        	for (var j = 0; j < arrCoord.length; j++) {
                                  bounds.extend(arrCoord[j].position);                    
                            }
                            map.fitBounds(bounds);	
                        }
                        */            
                } else {
                    alert("Problemi nella localizzazione della citta'");
                }
            });
         // MARKER CARTE
            if (arrCoord) {
                if (arrCoord.length) {
                	/*
                    var infowindow = new google.maps.InfoWindow({
                        content: ''
                    });
                    */
                    for (var k = 0; k < arrCoord.length; k++) {
                        var markerCarta = new google.maps.Marker({
                            position: arrCoord[k].position,
                            map: map,
                            title: arrCoord[k].indirizzo,
                            icon: 'images/ico-carte.png'
                        });
                        /*
                        google.maps.event.addListener(markerFoto, 'click', function(){
                            infowindow.setContent(this.contFoto);
                            infowindow.open(map, this);
                        });
                        */
                        //arrCoord[k].marker = markerCarta;
                    }
                }
            }
            $('#btn-aggiorna-mappa').hide();
            $('#btn-chiudi-mappa').unbind('click');
            $('#btn-chiudi-mappa').click(function(){
                $('#canvasMap').hide();
                //$('#helper').html(printLegenda());
                //clearInterval(mappa.idTimeMappa);
                //clearInterval(mappa.idTimeSms);
                //mappa = null;
            });
        }
	});
}
